package com.dyj.applet.domain.query;

import com.dyj.common.domain.query.BaseSubscriptionQuery;
import com.dyj.common.enums.SubscriptionAccessTokenTypeEnum;

public class QueryUserSubscriptionStatusQuery extends BaseSubscriptionQuery {

    /**
     * 消息模板的 id，来自添加模板接口
     */
    private String msg_id;
    /**
     * 需要查询的目标用户 OpenID
     */
    private String open_id;

    public String getMsg_id() {
        return msg_id;
    }

    public QueryUserSubscriptionStatusQuery setMsg_id(String msg_id) {
        this.msg_id = msg_id;
        return this;
    }

    public String getOpen_id() {
        return open_id;
    }

    public QueryUserSubscriptionStatusQuery setOpen_id(String open_id) {
        this.open_id = open_id;
        return this;
    }

    public static QueryUserSubscriptionStatusQueryBuilder builder() {
        return new QueryUserSubscriptionStatusQueryBuilder();
    }

    public static final class QueryUserSubscriptionStatusQueryBuilder {
        private String msg_id;
        private String open_id;
        private SubscriptionAccessTokenTypeEnum accessTokenTypeEnum;
        private Integer tenantId;
        private String clientKey;

        private QueryUserSubscriptionStatusQueryBuilder() {
        }

        public QueryUserSubscriptionStatusQueryBuilder msgId(String msgId) {
            this.msg_id = msgId;
            return this;
        }

        public QueryUserSubscriptionStatusQueryBuilder openId(String openId) {
            this.open_id = openId;
            return this;
        }

        public QueryUserSubscriptionStatusQueryBuilder accessTokenTypeEnum(SubscriptionAccessTokenTypeEnum accessTokenTypeEnum) {
            this.accessTokenTypeEnum = accessTokenTypeEnum;
            return this;
        }

        public QueryUserSubscriptionStatusQueryBuilder tenantId(Integer tenantId) {
            this.tenantId = tenantId;
            return this;
        }

        public QueryUserSubscriptionStatusQueryBuilder clientKey(String clientKey) {
            this.clientKey = clientKey;
            return this;
        }

        public QueryUserSubscriptionStatusQuery build() {
            QueryUserSubscriptionStatusQuery queryUserSubscriptionStatusQuery = new QueryUserSubscriptionStatusQuery();
            queryUserSubscriptionStatusQuery.setMsg_id(msg_id);
            queryUserSubscriptionStatusQuery.setOpen_id(open_id);
            queryUserSubscriptionStatusQuery.setAccessTokenTypeEnum(accessTokenTypeEnum);
            queryUserSubscriptionStatusQuery.setTenantId(tenantId);
            queryUserSubscriptionStatusQuery.setClientKey(clientKey);
            return queryUserSubscriptionStatusQuery;
        }
    }
}
